一眼题目。
题目简述如下:
- 任务一:支持询问当前本质不同的子串的个数
- 任务二:支持插入
很显然后缀自动机可以解决胜任,正好今天刚学了后缀自动机,那么就将它定为练手题了。
插入是很简单的,至于询问本质不同的字串的个数,我们知道新插入一个节点 $now$ 对答案的贡献是: $ |max(now)| - |min(now)| + 1$ 。我们建后缀自动机的时候只保存了 $max(now)$ ,难道还要保存一个 $min(now)$ 吗?其实不需要,根据其性质可以得到:$|max(now)| - |max(fa[now])|$,直接计算即可。
注意数据范围较大,记得开 $longlong$ !
*注:文中的 $|S|$ 指的是字符串 $S$ 的长度。
1 |
|
本文标题:【题解】 [SDOI2016]生成魔咒 后缀自动机.SAM bzoj4516/luogu4070
文章作者:Qiuly
发布时间:2019年02月14日 - 00:00
最后更新:2019年03月29日 - 13:54
原始链接:http://qiulyblog.github.io/2019/02/14/[题解]luoguP4070/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。